1. Field of the Invention
The present invention relates to WINDOWS® SIDESHOW™ technology, and more particularly, to a method and system for communicating between two independent software components of a SIDESHOW™ device.
2. Description of the Related Art
Unless otherwise indicated herein, the approaches described in this section are not prior art to the claims in this application and are not admitted to be prior art by inclusion in this section.
Windows® Vista® is a commercially available operating system from Microsoft Corporation of Redmond, Wash., hereinafter referred to as WINDOWS VISTA. Windows® SideShow™ is a commercially available application program from Microsoft Corporation of Redmond, Wash., hereinafter referred to as WINDOWS SIDESHOW. With WINDOWS VISTA operating systems becoming the dominant operating systems for personal computers, a variety of software or hardware applications compatible with Vista-based computer systems are also becoming more and more popular. One of the Vista-based software/hardware applications WINDOWS SIDESHOW, which is a technology that supports an auxiliary screen to the Vista-based computer system.
To illustrate, FIG. 1 is a simplified block diagram showing a software stack 100 for a WINDOWS SIDESHOW device. The software stack 100 includes a built-in gadget 102, a SIDESHOW Application Programming Interface (API) 104, a tiny media API 106, a tiny Common Language Runtime (CLR) 108, and an embedded operating system (OS) 110. Here, two distinct software components, such as the built-in gadget 102 and the embedded OS 110, communicate with each other via emulated serial transports such as virtual Universal Asynchronous Receiver Transmitter (UART) ports. Unlike their physical counterparts that directly access the hardware of the WINDOWS SIDESHOW device, these virtual UART ports are created to emulate the characteristics of the physical UART ports and to facilitate the communication between two software components. Specifically, for the built-in gadget 102 to access the hardware of the WINDOWS SIDESHOW device, the built-in gadget 102 may invoke function calls supported by the tiny media API 106, wherein the function calls further depend on routines that are supported by the tiny CLR 108. To abstract some of the operation details of the software stack 100 from the built-in gadget 102, some of the data or commands from the built-in gadget 102 are encapsulated and sent through virtual UART ports 112, so that the data or commands can be further operated on by the embedded OS 110.
However, there currently lacks a method or system to ensure the robustness of the communication between the aforementioned two independent software components through the emulated serial transports. More particularly, conventional methods or systems neither guarantee the success of the transfer of packets from one software component to another nor enable the software component that sends the packets to efficiently acquire the status of such transfer.
What is needed in the art is thus a method and system that enable two independent software components of the WINDOWS SIDESHOW device to communicate robustly and efficiently and address at least the problems set forth above.